// 看以下代码 结果是什么？ 第二次也不会

var a = {n: 1};
var b = a;
a.x = a = {n: 2};

console.log(a.x) //undefined
console.log(b.x)//{n:2}

/* ①首先a等于{n:1}是初始的a

②然后进行b的赋值，在栈内存中，a与b是不同的，是两个变量，但是他们的指针是相同的，指向同一个堆。

③从左到右a.x相当于为a对象创建了一个x方法，等待右边赋值，a={n:2}意味着a为新的对象{n:2}了，
但是a.x指的是旧的对象里的成员，为其赋值为{n:2},并不影响新对象a
分析结果：由于旧对象a与b指的是同一个堆，所以b.x是{n:2}
a里面没有x这个方法，所以为undefined*/

